home *** CD-ROM | disk | FTP | other *** search
/ Aminet 50 / Aminet 50 (2002)(GTI - Schatztruhe)[!][Aug 2002].iso / Aminet / text / tex / dvipdfm.lha / dvipdfm / mem.h < prev    next >
C/C++ Source or Header  |  2000-10-20  |  2KB  |  51 lines

  1. /*  $Header$
  2.  
  3.     This is dvipdfm, a DVI to PDF translator.
  4.     Copyright (C) 1998, 1999 by Mark A. Wicks
  5.  
  6.     This program is free software; you can redistribute it and/or modify
  7.     it under the terms of the GNU General Public License as published by
  8.     the Free Software Foundation; either version 2 of the License, or
  9.     (at your option) any later version.
  10.  
  11.     This program is distributed in the hope that it will be useful,
  12.     but WITHOUT ANY WARRANTY; without even the implied warranty of
  13.     MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
  14.     GNU General Public License for more details.
  15.  
  16.     You should have received a copy of the GNU General Public License
  17.     along with this program; if not, write to the Free Software
  18.     Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
  19.     
  20.     The author may be contacted via the e-mail address
  21.  
  22.     mwicks@kettering.edu
  23. */
  24.  
  25.     
  26. #ifndef MEM_H
  27. #define MEM_H
  28.  
  29. #include <stdlib.h>
  30.  
  31. extern void *new (size_t size, char *function, int line);
  32. extern void *renew (void *p, size_t size, char *function, int line);
  33. extern void release (void *mem, char *function, int line);
  34.  
  35. #ifdef MEM_DEBUG
  36. extern void mem_debug_init(void);
  37. extern FILE *debugfile;
  38. #define NEW(n,type) (type *)(new (((size_t) (n))*sizeof(type),__FUNCTION__,__LINE__))
  39. #define RENEW(p,n,type) (type *)(renew ((p),(n)*sizeof(type),__FUNCTION__,__LINE__))
  40. #define RELEASE(p) release ((p),__FUNCTION__,__LINE__)
  41. #define MEM_START {mem_debug_init();fprintf (debugfile, "Entered %s\n", __FUNCTION__);}
  42. #define MEM_END fprintf (debugfile, "Leaving %s\n", __FUNCTION__);
  43. #else /* MEM_DEBUG */
  44. #define MEM_START
  45. #define MEM_END
  46. #define NEW(n,type) (type *)(new (((size_t) (n))*sizeof(type),NULL,0))
  47. #define RENEW(p,n,type) (type *)(renew ((p),(n)*sizeof(type),NULL,0))
  48. #define RELEASE(p) release ((p),NULL,0)
  49. #endif /* MEM_DEBUG */
  50. #endif /* MEM_H */
  51.